package com.heima.leetcode.datastructure.linkedlist;

/**
 * <h2>查找中间节点，奇数个节点则中间，偶数则 中间两个的右边一个</h2>
 */
public class FindMiddleNode {

    /*
                p1
                         p2
     1    2    3    4    5     null
                    p1
                                    p2
     1    2    3    4    5    6    null
     */

    /**
     * <h3>方法一，快慢指针法</h3>
     * @param head 链表的头节点
     * @return 查找到的节点
     */
    public static ListNode findMiddleNode(ListNode head){
        ListNode p1 = head;
        ListNode p2 = head;
        while (p2 != null && p2.next != null){
            p1 = p1.next;
            p2 = p2.next;
            p2 = p2.next;
        }
        return p1;
    }
}
